package com.qwc.blog.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qwc.blog.entity.Posts;
import com.qwc.blog.entity.User;
import com.qwc.blog.entity.vo.posts.AddPostDto;
import com.qwc.blog.entity.vo.posts.PostsListReqDto;

import java.util.List;

/**
 * <p>
 * 文章元信息表 服务类
 * </p>
 *
 * @author qwc
 * @since 2021-11-01
 */
public interface IPostsService extends IService<Posts> {

    /**
     * 分页获取文章信息
     *
     * @param dto
     * @return
     */
    Page<Posts> getPostsList(PostsListReqDto dto);

    /**
     * 保存文章
     *
     * @param dto
     * @param currentUser
     */
    void savePosts(AddPostDto dto, User currentUser);

    /**
     * 获取文章标签
     *
     * @param postsId
     * @return
     */
    List<String> getTags(Integer postsId);

    /**
     * 获取文章分类
     *
     * @param postsId
     * @return
     */
    List<List<Integer>> getCategories(Integer postsId);

    /**
     * 修改文章信息
     *
     * @param dto
     * @param currentUser
     */
    void updatePosts(AddPostDto dto, User currentUser);

    /**
     * 删除文章和对应类型的联系
     *
     * @param asList
     */
    void removePostsAndPostsCategory(List<Integer> asList);

    /**
     * 获取最新博客
     *
     * @return
     */
    List<Posts> getNewBlogList();

    /**
     * 获取热门博客
     *
     * @return
     */
    List<Posts> getHotBlogList();
}
